Skip to content

Design shell_06 - #716

Merged
desmonddak merged 20 commits into
intel:mainfrom
desmonddak:design_shell
Oct 16, 2026
Merged

desmonddak merged 20 commits into
intel:mainfrom
desmonddak:design_shell

Conversation

@desmonddak

@desmonddak desmonddak commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Description & Motivation

This branch creates an API for very basic traversal of a design using the handles SignalOccurrence and HierarchyOccurrence, providing search and connectivity traversal of a generic occurrence hypergraph representation of a ROHD design using the rohd_hierarchy service.

Related Issue(s)

None.

Testing

This branch provides traversal tests.

Backwards-compatibility

Is this a breaking change that will not be backwards-compatible? If yes, how so?

No

Documentation

Does the change require any updates to documentation? If so, where? Are they included?

Yes.

@desmonddak
desmonddak force-pushed the design_shell branch 12 times, most recently from 55e5926 to 268d6f4 Compare September 19, 2026 19:18
@desmonddak
desmonddak force-pushed the design_shell branch 4 times, most recently from 3a12501 to aecc6b4 Compare October 9, 2026 00:36
@desmonddak
desmonddak requested a review from mkorbel1 October 13, 2026 20:51
@desmonddak
desmonddak requested a balanced review from Copilot October 15, 2026 00:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved moderate issues affect compatibility, shell state, MAC behavior, tracing, serialization, and SystemC testing/tooling.

6 open findings
What changed in this PR

Adds occurrence-based design traversal and debugging APIs, alongside SystemC generation, waveform querying, and source cross-probing support.

Changes:

  • Adds design-session services and hierarchy interoperability.
  • Expands synthesis, waveform, tracing, and debugger integration.
  • Updates examples, tests, dependencies, CI, and documentation.
File Reviewed changes and findings
tool/​test/​run_checks_test.sh Tests cleanup and separate FFI execution.
tool/​test/​pana_source_test.sh Tests local hierarchy dependency handling.
tool/​run_checks.sh Adds SystemC cleanup.
tool/​gh_codespaces/​run_setup.sh Installs SystemC during setup.
tool/​gh_codespaces/​install_systemc.sh Adds SystemC installation helper.
tool/​gh_actions/​setup_systemc_pch.sh Prebuilds SystemC headers. Moderate, 1 vote, L28: Under pipefail, grep -q can cause nm SIGPIPE and incorrectly select C++17; drain the symbol output instead.
tool/​gh_actions/​run_tests.sh Separates FFI tests.
tool/​gh_actions/​pana_source.sh Handles local hierarchy dependencies.
tool/​gh_actions/​install_systemc.sh Builds and installs SystemC.
tool/​gh_actions/​install_gtkwave.sh Installs waveform conversion tools.
tool/​gh_actions/​devtool/​run_devtool_test.sh Separates browser and debugger tests.
tool/​gh_actions/​cleanup_systemc_tmp.sh Removes SystemC artifacts.
tool/​gh_actions/​check_tmp_test.sh Allows retained header caches.
tool/​gen_filterbank_flc.dart Generates FilterBank debugging assets.
test/​unpacked_array_synthesis_test.dart Updates a comment date.
test/​systemc_tool_policy_test.dart Tests required-tool failure handling.
test/​systemc_split_packed_output_test.dart Tests split-output generation.
test/​systemc_service_test.dart Tests SystemC services and stubbing. Moderate, 1 vote, L216: The outer isTrue assertion fails when optional SystemC is unavailable despite the helper marking the test skipped; call the helper without that assertion.
test/​signal_registry_test.dart Tests FilterBank canonical names.
test/​net_test.dart Adds SystemC comparison.
test/​naming_consistency_test.dart Updates naming assertions.
test/​module_services_test.dart Expands service lifecycle coverage.
test/​flop_test.dart Adds SystemC flop comparisons.
test/​extend_test.dart Adds SystemC extension comparisons.
test/​diagnostics/​shell_command_registry_test.dart Tests typed shell bindings.
test/​counter_test.dart Adds SystemC counter comparison.
test/​config_test.dart Updates waveform test wording.
test/​comparison_test.dart Adds SystemC comparisons.
test/​collapse_test.dart Adds SystemC comparison.
test/​bus_test.dart Adds reusable SystemC bus checks.
test/​assignment_test.dart Adds SystemC assignment checks.
test/​arithmetic_shift_right_test.dart Adds SystemC shift comparison.
rohd_extension/​src/​flc_service.ts Supports embedded source traces. Moderate, 3 votes, L341: Embedded instance traces are accepted but not resolved because lookup checks only signals; fall back to rohd.src_trace.instances.
rohd_extension/​package.json Adds source-navigation activation events.
rohd_devtools_extension/​test/​debugger/​source_tracer_test.dart Tests construction-site tracing.
rohd_devtools_extension/​test/​debugger/​debug_session_test.dart Tests debugging lifecycle.
rohd_devtools_extension/​README.md Documents separate test platforms.
rohd_devtools_extension/​pubspec.yaml Updates debugging dependencies.
rohd_devtools_extension/​packages/​rohd_devtools_widgets/​pubspec.yaml Adds nested widget package manifest.
rohd_devtools_extension/​lib/​rohd_devtools/​services/​vm_service_signal_value_source.dart Updates waveform time lookup.
README.md Describes expanded generation and waveform support.
pubspec.yaml Adds hierarchy and YAML dependencies.
packages/​rohd_waveform/​pubspec.yaml Uses local hierarchy dependency.
packages/​rohd_waveform/​pubspec_overrides.yaml Removes redundant overrides.
packages/​rohd_hierarchy/​test/​address_conversion_test.dart Tests definition-name root prefixes.
packages/​rohd_hierarchy/​pubspec.yaml Updates hierarchy package version.
packages/​rohd_hierarchy/​lib/​src/​signal_occurrence.dart Adds legacy map conversion. Moderate, 3 votes, L118: Non-nullable casts reject nullable fields emitted by toMap(), breaking round trips; use nullable casts.
packages/​rohd_hierarchy/​lib/​src/​occurrence_address.dart Accepts definition-name prefixes.
packages/​rohd_hierarchy/​lib/​src/​netlist_hierarchy_adapter.dart Records explicit port counts.
packages/​rohd_hierarchy/​lib/​rohd_hierarchy.dart Exports occurrence models.
packages/​rohd_hierarchy/​CHANGELOG.md Documents hierarchy release.
packages/​rohd_devtools_widgets/​pubspec.yaml Uses local hierarchy dependency.
packages/​rohd_devtools_widgets/​pubspec_overrides.yaml Simplifies overrides.
packages/​rohd_devtools_widgets/​lib/​src/​regex_utils.dart Adds regex helpers.
merge_build_time.txt Empty metadata file.
lib/​src/​wave_dumper.dart Updates waveform API references.
lib/​src/​utilities/​simcompare.dart Exposes SystemC comparison helpers.
lib/​src/​utilities/​namer.dart Adds structural-operation naming.
lib/​src/​synthesizers/​utilities/​synth_module_definition.dart Adds backend-specific output concatenation capability.
lib/​src/​synthesizers/​utilities/​synth_logic.dart Adds reference-name accessors.
lib/​src/​synthesizers/​systemverilog/​systemverilog_synthesizer.dart Tracks output connection columns.
lib/​src/​synthesizers/​systemverilog/​systemverilog_synth_sub_module_instantiation.dart Forwards connection locations.
lib/​src/​synthesizers/​systemverilog/​system_verilog_service.dart Adds artifact and location maps.
lib/​src/​synthesizers/​systemc/​systemc.dart Adds SystemC synthesizer.
lib/​src/​synthesizers/​systemc/​systemc_synthesizer_configuration.dart Configures unsupported-module handling.
lib/​src/​synthesizers/​systemc/​systemc_synth_sub_module_instantiation.dart Adds SystemC instantiation helpers.
lib/​src/​synthesizers/​systemc/​systemc_synth_module_definition.dart Adds backend-specific definition handling.
lib/​src/​synthesizers/​synthesizers.dart Exports SystemC support.
lib/​src/​synthesizers/​synthesis_result.dart Adds generated-location contract.
lib/​src/​synthesizers/​synth_builder.dart Exposes implementation mappings.
lib/​src/​synthesizers/​netlist/​netlist_synthesizer_configuration.dart Configures embedded tracing.
lib/​src/​synthesizers/​netlist/​netlist_passes.dart Injects source-trace attributes.
lib/​src/​signals/​logic_structure.dart Records structure construction traces.
lib/​src/​modules/​conditionals/​sequential.dart Exposes trigger polarities.
lib/​src/​modules/​bus.dart Updates read-only diagnostics.
lib/​src/​module.dart Records module construction traces.
lib/​src/​fst/​fst_waveform_query.dart Adds disk-and-buffer waveform queries.
lib/​src/​fst/​fst_types.dart Defines FST format constants.
lib/​src/​examples/​tree_modules.dart Adds reusable tree example.
lib/​src/​examples/​oven_fsm_modules.dart Adds reusable FSM examples.
lib/​src/​examples/​filter_bank/​shared_data_bus.dart Adds shared-bus example.
lib/​src/​examples/​filter_bank/​mac_unit.dart Adds pipelined MAC example. Moderate, 3 votes, L73: enable is registered but unused, so both pipeline stages advance while disabled; add inverted-enable stalls to preserve existing behavior.
lib/​src/​examples/​filter_bank/​filter_sample.dart Adds structured sample model.
lib/​src/​examples/​filter_bank/​filter_data_interface.dart Adds filter interface.
lib/​src/​examples/​filter_bank/​filter_controller.dart Adds filter control FSM.
lib/​src/​examples/​filter_bank/​filter_bank.dart Adds FilterBank example hierarchy.
lib/​src/​examples/​filter_bank/​filter_bank_modules.dart Exports filter example modules.
lib/​src/​examples/​filter_bank/​coeff_bank.dart Adds coefficient selection module.
lib/​src/​diagnostics/​shell_service.dart Hosts design-session shell operations. Moderate, 3 votes, L31: Cached shells retain stale netlists after service replacement or registry reset, affecting queries and completion; invalidate shells and occurrence aliases when the netlist changes or disappears.
lib/​src/​diagnostics/​inspector_service.dart Updates inspector integration. Moderate, 3 votes, L124: Removing hierarchyJSON breaks existing callers and VM expressions despite the non-breaking claim; retain the forwarding alias until a breaking release.
lib/​src/​diagnostics/​flc_service.dart Adds deprecated trace-service alias.
lib/​src/​diagnostics/​diagnostics.dart Exports debugging APIs.
lib/​src/​diagnostics/​debug_session.dart Adds explicit debugging lifecycle.
lib/​rohd.dart Exports waveform and tracing support.
lib/​examples.dart Exports example definitions.
lib/​design_session_protocol.dart Exposes design-session protocol.
extension/​devtools/​config.yaml Allows disconnected DevTools use.
example/​filter_bank_debug.dart Generates debugging fixtures. Moderate, 3 votes, L72: Separate SV artifacts conflict with default single-file tracing, producing incorrect submodule file and line references; select per-module SV tracing.
doc/​user_guide/​_get-started/​03-development-recommendations.md Refreshes IDE links.
doc/​user_guide/​_get-started/​01-overview.md Mentions SystemC generation.
doc/​user_guide/​_docs/​A21-generation.md Documents generation and timescales.
doc/​tutorials/​README.md Updates waveform section link.
doc/​tutorials/​chapter_9/​rohd_vf_example/​pubspec.yaml Updates tutorial dependencies.
doc/​cross_probing.md Documents tracing and cross-probing. Nit, 2 votes, L227: NetlistService.create does not exist, so the example does not compile; use the synchronous constructor and update the introductory API reference.
doc/​architecture.md Includes SystemC architecture references.
dart_test.yaml Adds FFI exclusion preset.
CHANGELOG.md Records hierarchy package release.
.github/​workflows/​general.yml Integrates SystemC tooling and cleanup.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread example/filter_bank_debug.dart
Comment thread lib/src/diagnostics/inspector_service.dart
Comment thread lib/src/diagnostics/shell_service.dart Outdated
Comment thread lib/src/examples/filter_bank/mac_unit.dart
Comment thread rohd_extension/src/flc_service.ts Outdated
Comment thread doc/cross_probing.md Outdated
@desmonddak
desmonddak force-pushed the design_shell branch 3 times, most recently from 0b4faba to cd9a3ca Compare October 16, 2026 05:33
Hashim1999164 and others added 6 commits October 16, 2026 12:23
* Return original signal for same width zeroExtend

Avoid building a zero width Const plus Swizzle when there is nothing to
extend, matching signExtend. Also skip the Swizzle module when a list
swizzle or rswizzle has exactly one non zero width signal.

* Format swizzle and document zeroExtend identity

---------

Co-authored-by: Hashim1999164 <Hashim1999164@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
desmonddak and others added 13 commits October 16, 2026 12:23
Signed-off-by: Desmond A. Kirkpatrick <desmond.a.kirkpatrick@intel.com>
Keep the design-shell branch aligned with main's material_ui migration.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the obsolete material_ui upper bound and cupertino_ui override.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This reverts commit d398b80e482771e66b3452fc55c895cb3b523674.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@desmonddak
desmonddak merged commit c906e82 into intel:main Oct 16, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants